The present invention relates generally to memory management and more particularly to pre-loading graphics data before it is needed by a graphics processor to render to scene.
The amount of data needed by applications running in a computer system has greatly increased the past few years, and the rate of this increase shows no signs of abating. To handle this data, computer systems need to incorporate improved ways to manage data in memory.
Data stored in memory is often arranged in pages. These pages are stored at physical addresses in one or more memory devices, for example one or more DRAMs and hard disk drives. A DRAM can only store a limited amount of data, but is able to quickly provide it for use by an application. A hard disk drive stores a great deal of data, but is slower to provide it.
Since these DRAMs or memories can store only a limited amount of data, when new data that is not in the memories is needed, it is copied or swapped in from a hard disk drive and stored in memory. The original data remains on the disk to prevent it from being lost is power is removed from the memories. Data stored in the memory is also written back to the disk if it has been modified; if it has not been modified the data in memory can be overwritten.
“Demand-based” systems determine that the system needs missing data when it attempts to access the data and determines that the needed data is not present. This process works well as long as limited amounts of data are needed from disk each frame. That is, when scenes being rendered change only incrementally, a manageable amount of new pages need to swapped in from memory each frame.
However, when a scene being rendered changes considerably from one frame to the next, many new pages of data may need to swapped in during one frame. This may severely degrade graphics performance and lead to a stalling or hesitation in the images being displayed.
Accordingly, what is needed are circuits, methods, and apparatus that prevent this stalling or hesitation when a scene that is being rendered changes considerably from one frame to the next.